PHP sacude la web: el servidor Git ha sido hackeado
El ataque
PHP también ha sido criticado por piratas informáticos web, que fueron víctimas del ataque a un servidor GIT. De acuerdo con la información revelada a través del comunicado oficial de PHP , se enviaron dos confirmaciones maliciosas como Nikita Popov y Rasmus Lerdorf, comprometiendo git.php.net.
PHP decidió inmediatamente detener el servidor y enviar cualquier cambio futuro a GitHub en lugar de git.php.net.
Las dos confirmaciones maliciosas se insertaron en el código fuente como «corrección de errores tipográficos», es decir, haciéndolas pasar por simples correcciones ortográficas realizadas por los desarrolladores.
Además, el código también incluía la instrucción
zend_eval_string
utilizada por el atacante para instalar la puerta trasera que luego le permitiría ejecutar la ejecución remota de código (RCE) en cualquier sitio web que ejecutara el código manipulado.
Probablemente el reciente ataque a Orion de SolarWinds alertó a PHP que, desde el principio, intervino para limitar el daño del ataque de hackers. De hecho, el reciente ataque a las agencias del gobierno de EE.UU. y el ataque a PHP parecen tener la misma matriz. Incluso en el caso de SolarWinds, la vulnerabilidad de la plataforma había permitido modificar el código fuente, permitiendo a los hackers ejecutar el código directamente de forma remota.
Cómo protegerse de este tipo de ataques
La primera petición de PHP a sus usuarios fue que usaran GitHub para las ediciones, o que se unieran a la organización si no lo hacían.
La gran ventaja de usar plataformas como GitHub o CodeCommit es que, casi siempre, la superficie de ataque se reduciría simplemente a robar credenciales de la PC de la víctima. Mientras que, en el caso de PHP, se ha explotado una vulnerabilidad en Git, o una configuración «demasiado permisiva» de la misma.
Amazon Web Services ofrece el servicio CodeCommit que se encarga de la seguridad de su repositorio Git. Por lo general, los clientes usan repositorios privados que no son visibles para el público, incluso en modo de solo lectura. CodeCommit se integra con AWS IAM para administrar el acceso entre usuarios, roles, grupos y políticas de acceso. Una correcta gestión de estos elementos permite mantener seguro el acceso al repositorio (siempre tras el robo de credenciales y contraseñas). Además, CodeCommit no permite el uso de repositorios públicos como GitHub o GitLab, ni de su propio servidor Git.
Entonces, en el caso de PHP, no habría sido utilizable porque es software libre que necesita ser visible para la comunidad.